home *** CD-ROM | disk | FTP | other *** search
/ MASPC 1 / MASPC_1.iso / Demos / Demo DIV / DATA / PRG / TUTOR / TUTOR5.PRG < prev    next >
Encoding:
Text File  |  1997-12-03  |  2.1 KB  |  67 lines

  1. //--------------------------------------------------------------------
  2. // Titulo: Tutorial 5
  3. // Autor:  Daniel Navarro Medrano
  4. // Fecha:  26/01/97
  5. //--------------------------------------------------------------------
  6.  
  7. PROGRAM Tutorial_5;
  8.  
  9. GLOBAL
  10.     contador_cuerpo=0;  // Cuenta el número de cuerpos
  11.  
  12. BEGIN
  13.     // Carga el fichero de gráficos del juego
  14.     load_fpg("tutorial\tutor5.fpg");
  15.     // imprime el texto necesario y borra la pantalla
  16.     write(0,160,192,1,"Utilice el ratón para mover la serpiente.");
  17.     fade_on();
  18.  
  19.     // Pone la resolucion de las coordenadas con dos decimales
  20.     resolution=100;
  21.     // Selecciona el gráfico de la cabeza
  22.     graph=1;
  23.     // Inicia el scroll de fondo
  24.     start_scroll(0,0,4,5,0,0);
  25.     // Crea el segmento de cuerpo inicial
  26.     segmento();
  27.     LOOP
  28.         // Hace que la cabeza siga al cursor del raton
  29.         x=mouse.x*100;
  30.         y=mouse.y*100;
  31.         // Mueve los dos planos de scroll
  32.         scroll.x0=scroll.x0+1; scroll.y0=scroll.y0+1;
  33.         scroll.x1=scroll.x1-1; scroll.y1=scroll.y1-1;
  34.         FRAME;  // Hace que todo aparezca en pantalla
  35.     END
  36. END
  37.  
  38. PROCESS segmento()
  39.  
  40. PRIVATE
  41.     x0,y0;  // Coordenadas temporales para hacer calculos
  42.  
  43. BEGIN
  44.     // Hace que las coordenadas usen dos decimales
  45.     resolution=100;
  46.     // Incrementa el contador de segmentos del cuerpo
  47.     contador_cuerpo=contador_cuerpo+1;
  48.     // Pone la profundidad dependiento del numero de cuerpo
  49.     z=-contador_cuerpo;
  50.  
  51.     // Si es el final de la cola, lo hace mas pequeño
  52.     IF (contador_cuerpo>156) size=256-contador_cuerpo; END
  53.  
  54.     // Va creando otros segmentos del cuerpo hasta 256
  55.     IF (contador_cuerpo<256) segmento(); END
  56.  
  57.     // Selecciona el grafico, pero con transparencia
  58.     graph=2; flags=4;
  59.     LOOP
  60.           // Calculas las coordenadas haciendo una media
  61.           // entre la posicion actual y la posicion del
  62.           // cuerpo que lo llamo, que es el que esta delante
  63.           x=x0; x0=father.x; x=(x+x0*3)/4; x0=x;
  64.           y=y0; y0=father.y; y=(y+y0*3)/4; y0=y;
  65.         FRAME; // Pone el gráfico en pantalla
  66.     END
  67. END